Kubernetes Cluster
Kubernetes Cluster হল Kubernetes-এর মৌলিক স্থাপনা, যা কন্টেইনার ভিত্তিক অ্যাপ্লিকেশনগুলি পরিচালনা করার জন্য বিভিন্ন সার্ভার বা নোডের একটি সেট। একটি Kubernetes Cluster সাধারণত দুটি প্রধান উপাদানের সমন্বয়ে গঠিত:
Master Node (Control Plane):
- বর্ণনা: Master Node হল Kubernetes Cluster-এর মূল নিয়ন্ত্রণ পয়েন্ট। এটি ক্লাস্টারের সমস্ত কার্যক্রম পরিচালনা করে এবং বিভিন্ন কম্পোনেন্টের মধ্যে সমন্বয় সাধন করে।
- কার্যাবলী:
- ক্লাস্টারের স্থিতিশীলতা এবং স্বাস্থ্য পর্যবেক্ষণ করে।
- কাজের সময়সূচী নির্ধারণ করে, অর্থাৎ কোন কন্টেইনার কোথায় এবং কখন চলবে।
- Cluster-এর স্থিতিশীলতা এবং নিরাপত্তা নিশ্চিত করে।
Worker Nodes:
- বর্ণনা: Worker Nodes হল সেই নোডগুলো যেখানে কন্টেইনারগুলি বাস্তবে চলতে থাকে। একটি ক্লাস্টারে এক বা একাধিক Worker Node থাকতে পারে।
- কার্যাবলী:
- কন্টেইনারের বাস্তবায়ন এবং পরিচালনা করে।
- বিভিন্ন সার্ভিসের জন্য ট্রাফিক হ্যান্ডলিং করে।
- Master Node-এর নির্দেশনা অনুযায়ী কাজ করে।
Kubernetes Deployment
Kubernetes Deployment হল একটি Kubernetes উপাদান যা আপনাকে কন্টেইনারের জীবনচক্র পরিচালনা করতে সাহায্য করে। এটি আপনার কন্টেইনার অ্যাপ্লিকেশনগুলির বিভিন্ন সংস্করণ, আপডেট এবং স্কেলিংয়ের প্রয়োজনীয়তাগুলি পরিচালনা করে।
Deployment-এর মূল বৈশিষ্ট্য
Declarative Configuration:
- Deployment ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের কাঠামো ঘোষণা করতে পারেন, যা Kubernetes দ্বারা প্রক্রিয়াকৃত হয়।
Rollouts:
- Deployment স্বয়ংক্রিয়ভাবে নতুন সংস্করণগুলি চালু করার জন্য ব্যবহার করা হয়। এটি একটি নতুন ইমেজ দ্বারা কন্টেইনারের সংস্করণ পরিবর্তন করতে সহায়তা করে।
Rollback:
- যদি নতুন সংস্করণে কোনও সমস্যা হয়, তবে Deployment সহজেই পূর্ববর্তী সংস্করণে ফিরে যেতে পারে।
Scaling:
- Deployment কন্টেইনারের সংখ্যা বাড়াতে বা কমাতে সক্ষম। আপনি
kubectl scaleকমান্ড ব্যবহার করে স্কেলিং করতে পারেন।
Deployment উদাহরণ
নিচে একটি সাধারণ Deployment YAML ফাইলের উদাহরণ দেওয়া হলো:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:1.0
ports:
- containerPort: 80
Deployment তৈরি করা
- YAML ফাইলটি সংরক্ষণ করুন (যেমন
deployment.yaml)। - ক্লাস্টারে Deployment তৈরি করতে নিম্নলিখিত কমান্ড চালান:
kubectl apply -f deployment.yaml
Deployment দেখতে
Deployment সম্পর্কে তথ্য দেখতে:
kubectl get deployments
কন্টেইনার স্কেল করা
কন্টেইনারের সংখ্যা বাড়ানোর জন্য:
kubectl scale deployment my-app --replicas=5
Rollback করা
পূর্ববর্তী সংস্করণে ফিরে যেতে:
kubectl rollout undo deployment my-app
সারসংক্ষেপ
Kubernetes Cluster হল একাধিক নোডের একটি সেট যা কন্টেইনার ভিত্তিক অ্যাপ্লিকেশনগুলি পরিচালনা করে, যেখানে Master Node নিয়ন্ত্রণ এবং Worker Nodes বাস্তবে কন্টেইনার চালায়। Kubernetes Deployment হল একটি শক্তিশালী উপাদান যা কন্টেইনারের জীবনচক্র পরিচালনা করে, যেমন স্কেলিং, আপডেট, এবং রোলব্যাক। এই দুটি উপাদান মিলে Kubernetes কন্টেইনারাইজড অ্যাপ্লিকেশন পরিচালনার জন্য একটি উন্নত এবং কার্যকর পরিবেশ তৈরি করে।
Read more